﻿@page "/myorders"
@layout ForceSignInLayout
@inject HttpClient HttpClient

<div class="main">
    <TemplatedList Loader="@LoadOrders" ListGroupClass="orders-list">
        <LoadingContent><text>Loading...</text></LoadingContent>
        <EmptyContent>
            <h2>No orders placed</h2>
            <a class="btn btn-success" href="">Order some pizza</a>
        </EmptyContent>
        <ItemContent Context="item">
            <div class="col">
                <h5>@item.Order.CreatedTime.ToLongDateString()</h5>
                Items:
                <strong>@item.Order.Pizzas.Count()</strong>;
                Total price:
                <strong>£@item.Order.GetFormattedTotalPrice()</strong>
            </div>
            <div class="col">
                Status: <strong>@item.StatusText</strong>
            </div>
            <div class="col flex-grow-0">
                <a href="myorders/@item.Order.OrderId" class="btn btn-success">
                    Track &gt;
                </a>
            </div>
        </ItemContent>
    </TemplatedList>
</div>

@functions {
    async Task<List<OrderWithStatus>> LoadOrders()
    {
        await Task.Delay(3000);
        return await HttpClient.GetJsonAsync<List<OrderWithStatus>>("/orders");
    }
}
